﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions.Shared;
using System.IO;
namespace Presentacion
{
    public partial class Reporte : Form
    {
        int pid = 0;
        public Reporte(int pid)
        {
            InitializeComponent();
            this.pid = pid;
        }

        private void Reporte_Load(object sender, EventArgs e)
        {
           
          
		  //
          // Creo el parametro y asigno el nombre
          //
          ParameterField param = new ParameterField();
          param.ParameterFieldName = "PresupuestoID";

          //
          // creo el valor que se asignara al parametro
          //
          ParameterDiscreteValue discreteValue = new ParameterDiscreteValue();
          discreteValue.Value = pid; 
          param.CurrentValues.Add(discreteValue);

          //
          // Asigno el paramametro a la coleccion
          //
          ParameterFields paramFiels = new ParameterFields();
          paramFiels.Add(param);

          //
          // Asigno la coleccion de parametros al Crystal Viewer
          //
          crystalReportViewer1.ParameterFieldInfo = paramFiels;

          //
          // Creo la instancia del reporte
          //
		  Reportes.reporte report = new Reportes.reporte();

          //
          // Cambio el path de la base de datos
          //
		 // string rutadb = Path.Combine(Application.StartupPath, "TestDb.mdb");
		//  report.DataSourceConnections[0].SetConnection("", rutadb, false);

          //
          // Asigno el reporte a visor
          //
		  crystalReportViewer1.ReportSource = report;
          ConnectionInfo connectionInfo = new ConnectionInfo();

          connectionInfo.ServerName = "XE";
          connectionInfo.UserID = "juan";
          connectionInfo.Password = "lagartija";

          SetDBLogonForReport(connectionInfo);
        }

        private void SetDBLogonForReport(ConnectionInfo connectionInfo)
        {
            TableLogOnInfos tableLogOnInfos = crystalReportViewer1.LogOnInfo;

            foreach (TableLogOnInfo tableLogOnInfo in tableLogOnInfos)
            {
                tableLogOnInfo.ConnectionInfo = connectionInfo;
            }

        }
    }
}
